package com.reactim.message.connection;

import java.util.List;
import java.util.Map;
import reactor.core.publisher.Mono;

/**
 * 批量操作接口
 * 定义连接管理的批量操作方法，提高性能
 */
public interface BatchOperations {
    
    /**
     * 批量获取用户在线状态
     * 
     * @param userIds 用户ID列表
     * @return 用户ID到在线状态的映射
     */
    Mono<Map<Long, Boolean>> batchGetOnlineStatus(List<Long> userIds);
    
    /**
     * 批量获取连接详情
     * 
     * @param userIds 用户ID列表
     * @return 用户ID到连接详情的映射
     */
    Mono<Map<Long, ConnectionDetails>> batchGetConnections(List<Long> userIds);
    
    /**
     * 批量更新最后活跃时间
     * 
     * @param userIds 用户ID列表
     * @return 用户ID到更新结果的映射
     */
    Mono<Map<Long, Boolean>> batchUpdateLastActiveTime(List<Long> userIds);
}